package com.jiawei.队列.增强队列;

import com.jiawei.队列.Queue;

/**
 * @author : willian fu
 * @version : 1.0
 * 增强版队列 延时限流，发布订阅
 */
public interface ExpandQueue<E> extends Queue<E> {

    /**
     * 添加一个订阅者
     * @param subscribe 订阅
     * @return
     */
    boolean subscribe(Subscribe<? extends E> subscribe);

    /**
     * 发布事件
     * @param subscribe
     */
    void publish(Subscribe<? extends E> subscribe);

    /**
     * 设置消费速率
     * @param rate
     */
    void setRate (int rate);
}
